JIT Compile
#JVM
概要
バイトコードをネイティブコードに変換する
実行時の情報(よく呼び出されるメソッドなど)がある分AOTコンパイルよりも多くの情報を元に最適化ができる
プロファイリングや最適化にはオーバーヘッドが伴う
AWS Lambdaとかみたいな短命なプロセスではコンパイルレベル0で使用することで起動速度的な最適化がマッチする
コンパイルレベル0では完全なインタプリタでプロファイリングも取らないし最適化もしない
種類
C1コンパイラ
クライアントでの使用を想定して、短時間で最適化される
C2コンパイラ
サーバーサイドでの使用を想定して、しっかりプロファイリング取って高いパフォーマンスが出るように設計されてる
階層型コンパイラ
C1とC2を組み合わせたやつ
参照
https://youtu.be/2Komt90oNvs